The present invention relates generally to computer systems and deals more particularly with distributed computers that can access a common hardware resources.
Examples of (peripheral) hardware resources are CRTs, LCDs, plasma monitors, printers, modems, scanners and remote facsimile machine. Fault-tolerant and other computers often need to share or otherwise access peripheral hardware resources. In a fault-tolerant computer system, the tasks that are considered more critical for the computer system owner (for example, production tasks) are guaranteed to continue without interruption despite a failure of one of the computers. This requires redundancy of the computers and some hardware resources. A “High-availability” (“HA”) computer system has less redundancy and is less costly than a “fault-tolerant” computer system, but will experience short periods of interruption due some types of failures.
A HA computer system may include a cluster of certain resources (for example, central processing units and storage devices) associated with a primary (for example, a production server) or other computer. These resources are linked to each other so that they can be moved together (“mirrored”) to a back-up computer to ensure redundancy for the computer and its software applications. In the event of a failure of the primary computer, the back-up computer can take over some or all of the applications of the failed computer.
A software application, when running on the primary computer, may also use one or more peripheral hardware resources accessible to the primary computer. In order to render that software application highly available, the computer peripheral resources need to be accessible to the backup computer when the primary computer becomes unavailable.
It was known for multiple computers on a network to share a hardware resource, such as a printer of a certain type, connected to the network. (The hardware resource can also be a Remote Asynchronous Node (RAN) connected to a network via a terminal server.) When the hardware resource is connected to the network, the hardware resource and the computers are identified by respective network addresses such as IP addresses. Known software, including that in HA computer systems, can autonomously collect network devices addresses. In high availability environments, an application initially runs on a primary computer as long as the primary computer is functional, and will run on the backup computer when the primary computer fails. The application needs access to the hardware resources. Backup control software is stored in storage available to both computers. The backup computer invokes the backup control software when the primary computer fails. With this backup control software, the application on the back-up computer can access the hardware resource via the network devices. However, it is more expensive and complicated to share resources from a network than to directly attach them to a computer, and some hardware resources are designed for direct attachment, not network attachment.
Also, known HA management software cannot automatically migrate some peripheral hardware resources at the time of the take-over. For example, some hardware resources, such as local printers, display devices, modems and the like, are directly connected to the primary computer, do not have a network interface and cannot be automatically re-assigned to the back-up computer at the take-over. Thus, when a failure occurs in the primary computer, an operator has to manually disconnect these hardware resources from the primary computer and re-connect them to the back-up computer. Depending on the location of the back-up computer, this may involve transport of the hardware resources. This is burdensome and delays the operability of the backup computer.
It was known to provide every computer with its own, directly connected resources of these types; however this is expensive and requires maintenance of additional resources, even when not used. Also, some of the hardware resources are connected to other devices which complicates the takeover. For example, a hardware resource in the form of a serial multiport connects to other devices in the form of terminals, modems and the like.
Also, in some cases, a hardware resource must be available in a specific physical location, such as a display in a waiting room of a building or a printer that uses sequenced forms. In such a case, it is not viable to duplicate the hardware resource for the backup computer.
An object of the present invention is to allow a hardware resource to be accessed by two or more computers, one at a time.
Another object of the present invention is to allow a hardware resource to be accessed by two or more computers, one at a time, with comparable simplicity as a direct connection.
Another object of the present invention is to allow a hardware resource to be accessed by a primary computer when the primary computer is functional, and by a backup computer when the primary computer fails.